package com.strato.classloader.v1_0_0;

import java.net.URL;
import java.util.List;

public abstract class CompositeClassLoader extends java.lang.ClassLoader{

	public abstract void bindToThread(Thread thread);

	public abstract void unbindThread(Thread thread);

	public abstract List<ClassLoader> getUserDefinedClassLoaders();

	public abstract void setUserDefinedClassLoaders(List<ClassLoader> userDefinedClassLoaders);

	public abstract int getSystemClassLoadersOrder();

	public abstract void setSystemClassLoadersOrder(int systemClassLoadersOrder);

	public abstract Class<?> loadClass(String name) throws ClassNotFoundException;

	public abstract URL getResource(String name);

	public abstract void addUserDefinedClassLoader(ClassLoader cl);
	public abstract void addUserDefinedClassLoader(ClassLoader cl,int order);

	public abstract void removeUserDefinedClassLoader(ClassLoader cl);

	public abstract void clearUserDefinedClassLoaders();
}
